import { request } from "../../request/index";
import { rejeneratorRuntime } from "../../utils/asyncWx";
Page({
  /**
   * 页面的初始数据
   */
  data: {
    leftMenuList:[], // 左侧菜单数据
    rightContent:[], // 右侧数据
    currentIndex:0, //被点击激活的左侧菜单索引值 
    scrollTop:0 // 每次点击新的menu项从头开始显示
  },
  Cates:[], //分类数据
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 取出本地存储中的数据
    const Cates = wx.getStorageSync('cates')
    // 判断是否取到了(取到了则表示本地有缓存则不用重新发送请求)
    if(!Cates) this.getClassIfication(); //调用方法请求分类数据
    // 如果本地以及存储了数据则再判断数据是否过期如果过期则重新请求
    if(Date.now() - Cates.time > 18000) this.getClassIfication();
    // 没过期则走到这里直接使用本地的未过期旧数据不用再发请求
    else{
      this.Cates = Cates.data
      let leftMenuList = this.Cates.map(v => v.cat_name)
      // 右侧数据
      let rightContent = this.Cates[this.data.currentIndex].children
      // 现在再把数据赋值到data里
      this.setData({
        leftMenuList,
        rightContent
      })
      // console.log('复用了');
    } 
  },
  // 获取分类数据
  async getClassIfication(){
    const res = await request({
      url:'categories'
    })
      this.Cates = res; //把所有数据先放到一个里面
      // 把请求到的数据放到本地存储中
      wx.setStorageSync('cates', {time:Date.now(),data:this.Cates})
      // 然后定义个变量去接收筛选出来的左侧菜单数据
      let leftMenuList = this.Cates.map(v => v.cat_name)
      // 右侧数据
      let rightContent = this.Cates[this.data.currentIndex].children
      // 现在再把数据赋值到data里
      this.setData({
        leftMenuList,
        rightContent
      })
  },
  // 切换菜单
  switchMenu(e){
    this.setData({
      //拿到传递过来的index
      currentIndex:e.target.dataset.index, 
      scrollTop:0 // 每次都回到最顶部
    })
    this.getClassIfication(); //重新调用方法请求分类数据menu
  },
  // 刷新事件
  onPullDownRefresh(){
    // 假刷新
    setTimeout(() => {  
      wx.stopPullDownRefresh();
    }, 1500);
  }
})